#include <REGX52.H>
#include "Delay.h"

//74HC595写入一个字节
void _74HC595_WriteByte(unsigned char Byte)
{
	unsigned char i;
	for(i = 0; i<8; i++)
	{
		P3_4 = Byte&(0x80>>i);   //for循环控制移位
		P3_6=1;   //给高电平，控制移位
		P3_6=0;   //移位后，准备下一次移位
	}
	
	P3_5=1;//记录完数字移到I/O口
	P3_5=0;//恢复

//	P3_4 = Byte&0x40; //移动第二位  0x40 = 0100 0000 	
    //	Byte次高位&0x40，次高位为1时，值不变
//	P3_6=1;   
//	P3_6=0;
}	



//LED点阵屏显示一列数据
//Column是要选择的列，范围0~7，0在最左边
//Data选择列显示的数据，高位在上，1为亮，0为灭
void MatrixLED_ShowColumn(unsigned char Column,Data)//Data是 输入的数据 ，放在列中
{
	
	_74HC595_WriteByte(Data);  //Data给1才亮
	P0=~(0x80>>Column);//控制第几列亮
	Delay(1);  //防止串位置
	P0 = 0xFF; //0xFF表示位清零

}

void MatrixLED_Init()
{   //点阵屏初始化
	P3_6=0;
	P3_5=0;
}

